Skip to main content
Log in

A network flow-based algorithm for bus driver rerostering

  • Regular Article
  • Published:
OR Spectrum Aims and scope Submit manuscript

Abstract

Bus driver rostering generates the work plan for a pool of drivers during a planning period of predefined length. This plan, called the roster, must consider the balance between the pressure of costs, the provision of a service of high quality, labour agreements, and the goodwill of the workers. The bus driver rerostering problem occurs during real-time operational planning, when unexpected events—such as non-planned absences of drivers—disrupt the roster. To reconstruct a roster which is originally built in a context of days off schedules for drivers, we propose a reactive methodology based on a multicommodity flow assignment mixed integer linear programming model. The objective is to minimise the number of depot drivers who are assigned to drive and the number of postponed days off, as well as the dissimilarity between the reconstructed and the original roster and the balancing of the workload. The proposed algorithm enables the disrupted roster to be reconstructed at the expense of a relatively small number of changes in drivers’ work and rest periods, while, at the same time, controlling the dimension of the multicommodity flow network. Computational experience based on real-life based instances revealed that the algorithm has the ability to produce reconstructed rosters with few changes to the drivers’ original work assignment, in a short CPU time.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  • Carris, Relatório e Contas 2017 (2018) http://www.carris.pt/fotos/pageflip/rel_contas2017/CARRIS%20Relatorio%20e%20Contas%20FINAL.pdf. Accessed 29th Nov 2019

  • Chen C-H, Chou J-H (2017) Multiobjective optimization of airline crew roster recovery problems under disruption conditions. IEEE Trans Syst Man Cybern 47:133–144

    Article  Google Scholar 

  • Gao C, Johnson E, Smith B (2009) Integrated airline fleet and crew robust planning. Transp Sci 43:2–16

    Article  Google Scholar 

  • IBM ILOG CPLEX optimization studio V12.8.0. (2017) IBM Corporation, New York

  • Ingels J, Maenhout B (2015) The impact of reserved duties on the robustness of a personnel shift roster: an empirical investigation. Comput Oper Res 61:153–169

    Article  Google Scholar 

  • Ingels J, Maenhout B (2017) Employee substitutability as a tool to improve the robustness in personnel scheduling. OR Spectr 39:623–658

    Article  Google Scholar 

  • Maenhout B, Vanhoucke M (2013) Reconstructing nurse schedules: computational insights in the problem size parameters. Omega 41:903–918

    Article  Google Scholar 

  • Mesquita M, Moz M, Paias A, Paixão J, Pato M, Respício A (2011) A new model for the integrated vehicle-crew-rostering problem and a new computational study on rosters. J Sched 14:319–334

    Article  Google Scholar 

  • Mesquita M, Moz M, Paias A, Pato M (2015) A decompose-and-fix heuristic based on multi-commodity flow models for driver rostering with days off pattern. Eur J Oper Res 245:423–437

    Article  Google Scholar 

  • Moz M, Pato M (2003) An integer multicommodity flow model applied to the rerostering of nurse schedules. Ann Oper Res 119:285–301

    Article  Google Scholar 

  • Potthoff D, Huisman D, Desaulniers G (2010) Column generation with dynamic duty selection for railway crew rescheduling. Transp Sci 44(4):493–505

    Article  Google Scholar 

  • Rezanova NJ, Ryan DM (2010) The train driver recovery problem—a set partitioning based model and solution method. Comput Oper Res 37:845–856

    Article  Google Scholar 

  • Sargut FZ, Altuntaş C, Tulazoğlu DC (2017) Multi-objective integrated acyclic crew rostering and vehicle assignment problem in public bus transportation. OR Spectr 39:1071–1096

    Article  Google Scholar 

  • Shibghatullah A, Safei S, Abal Abas Z, Zainal Abidin Z, Musa H, Rahmalan H (2017) Automated bus crew rescheduling for late sign-on (LSFO) event using multi-agent system. Int J Hum Technol Interact 1:68–72

    Google Scholar 

  • Trivedi VM, Warner DM (1976) A branch and bound algorithm for optimum allocation of float nurses. Manag Sci 22:972–981

    Article  Google Scholar 

  • Veelenturf L, Potthoff D, Huisman D, Kroon L (2012) Railway crew rescheduling with retiming. Transp Res Part C 20:95–110

    Article  Google Scholar 

  • Veelenturf L, Potthoff D, Huisman D, Kroon L, Maróti G, Wagelmans A (2016) A quasi-robust optimization approach for resource rescheduling. Transp Sci 50:204–215

    Article  Google Scholar 

  • Weide O, Ryan D, Ehrgott M (2010) An iterative approach to robust and integrated aircraft routing and crew scheduling. Comput Oper Res 37:833–844

    Article  Google Scholar 

  • Xie L, Suhl L (2015) Cyclic and non-cyclic crew rostering problems in public bus transit. OR Spectr 37:99–136

    Article  Google Scholar 

  • Xie L, Merschformann M, Kliewer N, Suhl L (2017) Metaheuristics approach for solving personalized crew rostering problem in public bus transit. J Heuristics 23:321–347

    Article  Google Scholar 

Download references

Acknowledgements

This work was supported by National Funding from FCT-Fundação para a Ciência e a Tecnologia, under projects: UID/MAT/04561/2019 and PTDC/MATNAN/2196/2014 – RORNET.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Marta Mesquita.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix

Appendix

Example of the random generation of absences according to Scenario C1 for the real roster P6 instance.

  1. (1)

    Randomly generate r according to a uniform distribution U[0,1]. If \(r > 0.5\) then NAD = 1 else NAD = 2.

    $${\text{Instance}}\;P6{:}\;{\text{NAD}} = 2.$$
  2. (2)

    Defining the first absent driver

    Driver \(i \in \overline{M}\) is selected according to a discrete uniform distribution, taking values on {1,…, \(\left| {\overline{M}} \right|\)}

    $${\text{Instance}}\;P6{:}\;i = 47$$
    1. (i)

      Defining the first day of the absence period of driver i:

      Let \(d_{i,1}\) be the first day of absence for driver i, \(d_{i,1}\) is randomly generated according to a discrete uniform distribution, taking values on {8,…,14};

      $${\text{Instance}}\;P6{:}\;d_{i,1} = 10$$
    2. (ii)

      Defining the number of consecutive absent days for driver i:

      Let X be a random variable which represents the number of consecutive absent days, and let \(dc_{i}\) be the number of consecutive days that driver i will be absent. Number \(dc_{i}\) is randomly generated according to the following distribution:

      x i

      1

      2

      3

      4

      7

      14

      P [X = xi]

      0.2

      0.2

      0.2

      0.2

      0.1

      0.1

      Instance P6: \(dc_{i} = 4\). This means that driver 47 will be absent on days 10, 11, 12, and 13.

      If NAD = 1 stop.

  3. (3)

    Defining the second absent driver

    Driver \(j \in \overline{M}\) is selected according to a discrete uniform distribution, taking values on {1,…, \(\left| {\overline{M}} \right|\)}\{i}.

    $${\text{Instance}}\;P6{:}\; j = 20$$
    1. (i)

      Defining the first day of the absence period for driver j

      Let \(d_{j,1}\) be the first day of absence for driver j, \(d_{j,1}\) is randomly generated according to a discrete uniform distribution, taking values on {8,…,49};

      $${\text{Instance}}\;P6{:}\;d_{j,1} = 16$$
    2. (ii)

      Defining the number of consecutive absent days for driver j

      Let X be a random variable that represents the number of consecutive absent days, and let \(dc_{j}\) be the number of consecutive days driver j will be absent. The probability distribution of X depends on the value of \(d_{j,1} { }\). Therefore, \(dc_{j}\) is randomly generated according to the following distribution:

    • If \(\left| H \right| - d_{j,1} + 1 \ge 14\):

      xj

      1

      2

      3

      4

      7

      14

      P [X = xj]

      0.2

      0.2

      0.2

      0.2

      0.1

      0.1

      Instance P6: \(\left| H \right| - d_{j,1} + 1 = 49 - 16 + 1 \ge 14\) and we obtain \(dc_{j}\) = 3. This means that driver 20 will be absent on days 16, 17, and 18.

    • Elseif \(\left| H \right| - d_{j,1} + 1 \ge 7\):

      xj

      1

      2

      3

      4

      5

      7

      P [X = xj]

      0.2

      0.2

      0.2

      0.2

      0.1

      0.1

    • Elseif \(\left| H \right| - d_{j,1} + 1 < 7\):

x j

1

\(\left| H \right| - d_{j,1}\)

P [X = xj]

1/(\(\left| H \right| - d_{j,1}\))

1/(\(\left| H \right| - d_{j,1}\))

1/(\(\left| H \right| - d_{j,1}\))

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Paias, A., Mesquita, M., Moz, M. et al. A network flow-based algorithm for bus driver rerostering. OR Spectrum 43, 543–576 (2021). https://doi.org/10.1007/s00291-021-00622-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00291-021-00622-3

Keywords

Navigation